package coreModel;

import reports.directors.IVisitor;

public interface INode {

	/**
	 * This function accepts a visitor 
	 * and then call visit with the visitor.
	 * The vists are done in a post order traversal
	 * @param visitor instance of IVisitor that is
	 * visiting the node
	 */
	
	public void postOrderAccept(IVisitor visitor);
	
	/**
	 * This function accepts a visitor 
	 * and then call visit with the visitor/
	 * The visits are done in a pre order traversal
	 * @param visitor instance of IVisitor that is
	 * visiting the node
	 */
	public void preOrderAccept(IVisitor visitor);
	
}
